<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>eRPC Generator (erpcgen): Logging.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">eRPC Generator (erpcgen)
   &#160;<span id="projectnumber">Rev. 1.7.4</span>
   </div>
   <div id="projectbrief">NXP Semiconductors</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_logging_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Logging.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2013-14, Freescale Semiconductor, Inc.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2016 NXP</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * SPDX-License-Identifier: BSD-3-Clause</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#if !defined(_Logging_h_)</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define _Logging_h_</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;cstdarg&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_logger.html">   46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_logger.html">Logger</a></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">   50</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381aca09a23920b7567780c73d5e6ef30568">   52</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381aca09a23920b7567780c73d5e6ef30568">kUrgent</a> = 0,     </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a30bcc9bfa9b1cd8f269c6763287209cc">   53</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a30bcc9bfa9b1cd8f269c6763287209cc">kError</a>,          </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a8e3ed7030f92b6542e5354e937f2e0ee">   54</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a8e3ed7030f92b6542e5354e937f2e0ee">kWarning</a>,        </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">   55</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">kInfo</a>,           </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a0e22aade4d30c09d021b81f88e422d59">   56</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a0e22aade4d30c09d021b81f88e422d59">kInfo2</a>,          </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381abb93ac9bb74b3ce94a909b7362db37b4">   57</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381abb93ac9bb74b3ce94a909b7362db37b4">kDebug</a>,          </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a7059bc37726a537e725116d79d149cb3">   58</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a7059bc37726a537e725116d79d149cb3">kDebug2</a>,         </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ade1be3a5625f4037711f67c7064905d2">   59</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ade1be3a5625f4037711f67c7064905d2">kInfo1</a> = <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">kInfo</a>,  </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a894c8bec70d9093570638d698983d86f">   60</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a894c8bec70d9093570638d698983d86f">kDebug1</a> = <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381abb93ac9bb74b3ce94a909b7362db37b4">kDebug</a> </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    };</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_logger.html#abc41bfb031d896170c7675fa96a6b30c">   65</a></span>&#160;    <a class="code" href="class_logger.html#abc41bfb031d896170c7675fa96a6b30c">Logger</a>()</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    : <a class="code" href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">m_filter</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">kInfo</a>)</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    , <a class="code" href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">m_level</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">kInfo</a>)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_logger.html#ae93f62ca3e47716b7120acb032a260f3">   72</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="class_logger.html#ae93f62ca3e47716b7120acb032a260f3">~Logger</a>() {}</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a86a9875a4e4aae6670f16237e651ba3a">setFilterLevel</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> level) { <a class="code" href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">m_filter</a> = level; }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_logger.html#a65f0668007317623100b0eac42ae6796">   79</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> <a class="code" href="class_logger.html#a65f0668007317623100b0eac42ae6796">getFilterLevel</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">m_filter</a>; }</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_logger.html#a2fcf77f7190217a3a277f75196cf4c0e">   82</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a2fcf77f7190217a3a277f75196cf4c0e">setOutputLevel</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> level) { <a class="code" href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">m_level</a> = level; }</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_logger.html#a9cb967d830ff2cff918ce4eb67154301">   85</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> <a class="code" href="class_logger.html#a9cb967d830ff2cff918ce4eb67154301">getOutputLevel</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">m_level</a>; }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_logger.html#a4e0a3c00612edfa447671831c8857e94">   94</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e0a3c00612edfa447671831c8857e94">log</a>(<span class="keyword">const</span> std::string &amp;msg) { <a class="code" href="class_logger.html#a4e0a3c00612edfa447671831c8857e94">log</a>(msg.c_str()); }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_logger.html#a880f92a9fb0a790e947578b043d73cb9">  100</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a880f92a9fb0a790e947578b043d73cb9">log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> level, <span class="keyword">const</span> std::string &amp;msg) { <a class="code" href="class_logger.html#a880f92a9fb0a790e947578b043d73cb9">log</a>(level, msg.c_str()); }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list args);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list args);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">  109</a></span>&#160;    <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> <a class="code" href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">m_filter</a>; </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">  110</a></span>&#160;    <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">log_level_t</a> <a class="code" href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">m_level</a>;  </div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a696a0e952b85574c4e31c9e554838e3e">_log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg) = 0;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_log.html">  130</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_log.html">Log</a></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="class_logger.html">Logger</a> *getLogger() { <span class="keywordflow">return</span> s_logger; }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_log.html#ad2ceb2fdb51b4dbc4baef0691bdda182">  139</a></span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_log.html#ad2ceb2fdb51b4dbc4baef0691bdda182">setLogger</a>(<a class="code" href="class_logger.html">Logger</a> *logger) { s_logger = logger; }</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<span class="keyword">const</span> std::string &amp;msg);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level, <span class="keyword">const</span> std::string &amp;msg);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> urgent(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);  </div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> error(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);   </div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> warning(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...); </div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> info(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);    </div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> info2(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);   </div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> debug(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);   </div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> debug2(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);  </div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_log.html#a95c9278f739daf35e9c09490195febbe">  171</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="class_logger.html">Logger</a> *<a class="code" href="class_log.html#a95c9278f739daf35e9c09490195febbe">s_logger</a>; </div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html">  193</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_log_1_1_set_output_level.html">SetOutputLevel</a></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    {</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html#af42c4c02b1ed68d344fdf21a417acf66">  200</a></span>&#160;        <a class="code" href="class_log_1_1_set_output_level.html#af42c4c02b1ed68d344fdf21a417acf66">SetOutputLevel</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level)</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        : m_logger(<a class="code" href="class_log.html">Log</a>::getLogger())</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        , m_saved(<a class="code" href="class_logger.html">Logger</a>::<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">kInfo</a>)</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        {</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            assert(m_logger);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            m_saved = m_logger-&gt;getOutputLevel();</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;            m_logger-&gt;setOutputLevel(level);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        }</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html#a7a6868510087c10610022dabcab27f55">  213</a></span>&#160;        <a class="code" href="class_log_1_1_set_output_level.html#a7a6868510087c10610022dabcab27f55">SetOutputLevel</a>(<a class="code" href="class_logger.html">Logger</a> *logger, <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level)</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        : m_logger(logger)</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        , m_saved(logger-&gt;<a class="code" href="class_logger.html#a9cb967d830ff2cff918ce4eb67154301">getOutputLevel</a>())</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            assert(m_logger);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            m_logger-&gt;setOutputLevel(level);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        }</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html#add93dff7c0b5c79cf5a167617128402d">  224</a></span>&#160;        <a class="code" href="class_log_1_1_set_output_level.html#add93dff7c0b5c79cf5a167617128402d">~SetOutputLevel</a>() { m_logger-&gt;setOutputLevel(m_saved); }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keyword">protected</span>:</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html#af042e88d9111d1499117ec6651e536cf">  227</a></span>&#160;        <a class="code" href="class_logger.html">Logger</a> *<a class="code" href="class_log_1_1_set_output_level.html#af042e88d9111d1499117ec6651e536cf">m_logger</a>;            </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_log_1_1_set_output_level.html#a8fda3b2fc0a7e316f750819ed80e5c22">  228</a></span>&#160;        <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> <a class="code" href="class_log_1_1_set_output_level.html#a8fda3b2fc0a7e316f750819ed80e5c22">m_saved</a>; </div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    };</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="class_stdout_logger.html">  235</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_stdout_logger.html">StdoutLogger</a> : <span class="keyword">public</span> <a class="code" href="class_logger.html">Logger</a></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_stdout_logger.html#af2204f094477dfbed6af3cf55ac60ccf">  239</a></span>&#160;    <a class="code" href="class_stdout_logger.html#af2204f094477dfbed6af3cf55ac60ccf">StdoutLogger</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> stderrLevel = <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a8e3ed7030f92b6542e5354e937f2e0ee">Logger::kWarning</a>)</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    : m_stderrLevel(stderrLevel)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    }</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_stdout_logger.html#a470f9480714ea14497c563d4086449e4">  246</a></span>&#160;    <a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> <a class="code" href="class_stdout_logger.html#a470f9480714ea14497c563d4086449e4">m_stderrLevel</a>;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_logger.html#a696a0e952b85574c4e31c9e554838e3e">_log</a>(<a class="code" href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg);</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;};</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="preprocessor">#endif // _Logging_h_</span></div><div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381abb93ac9bb74b3ce94a909b7362db37b4"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381abb93ac9bb74b3ce94a909b7362db37b4">Logger::kDebug</a></div><div class="ttdoc">For internal reporting. </div><div class="ttdef"><b>Definition:</b> Logging.h:57</div></div>
<div class="ttc" id="class_logger_html_a65f0668007317623100b0eac42ae6796"><div class="ttname"><a href="class_logger.html#a65f0668007317623100b0eac42ae6796">Logger::getFilterLevel</a></div><div class="ttdeci">log_level_t getFilterLevel() const </div><div class="ttdoc">Returns the current logging filter level. </div><div class="ttdef"><b>Definition:</b> Logging.h:79</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381a7059bc37726a537e725116d79d149cb3"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a7059bc37726a537e725116d79d149cb3">Logger::kDebug2</a></div><div class="ttdoc">Highest log level; verbose debug logging. </div><div class="ttdef"><b>Definition:</b> Logging.h:58</div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html_af42c4c02b1ed68d344fdf21a417acf66"><div class="ttname"><a href="class_log_1_1_set_output_level.html#af42c4c02b1ed68d344fdf21a417acf66">Log::SetOutputLevel::SetOutputLevel</a></div><div class="ttdeci">SetOutputLevel(Logger::log_level_t level)</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:200</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a></div><div class="ttdeci">log_level_t</div><div class="ttdoc">Logging levels. </div><div class="ttdef"><b>Definition:</b> Logging.h:50</div></div>
<div class="ttc" id="class_logger_html"><div class="ttname"><a href="class_logger.html">Logger</a></div><div class="ttdoc">Base logger class. </div><div class="ttdef"><b>Definition:</b> Logging.h:46</div></div>
<div class="ttc" id="class_logger_html_a9cb967d830ff2cff918ce4eb67154301"><div class="ttname"><a href="class_logger.html#a9cb967d830ff2cff918ce4eb67154301">Logger::getOutputLevel</a></div><div class="ttdeci">log_level_t getOutputLevel() const </div><div class="ttdoc">Returns the current logging output level. </div><div class="ttdef"><b>Definition:</b> Logging.h:85</div></div>
<div class="ttc" id="class_logger_html_a2fcf77f7190217a3a277f75196cf4c0e"><div class="ttname"><a href="class_logger.html#a2fcf77f7190217a3a277f75196cf4c0e">Logger::setOutputLevel</a></div><div class="ttdeci">void setOutputLevel(log_level_t level)</div><div class="ttdoc">Changes the logging output level to level. </div><div class="ttdef"><b>Definition:</b> Logging.h:82</div></div>
<div class="ttc" id="class_log_html_a95c9278f739daf35e9c09490195febbe"><div class="ttname"><a href="class_log.html#a95c9278f739daf35e9c09490195febbe">Log::s_logger</a></div><div class="ttdeci">static Logger * s_logger</div><div class="ttdoc">The single global logger instance. </div><div class="ttdef"><b>Definition:</b> Logging.h:171</div></div>
<div class="ttc" id="class_logger_html_a4e63cbc1d6d8f374afe1d3e12b5f5842"><div class="ttname"><a href="class_logger.html#a4e63cbc1d6d8f374afe1d3e12b5f5842">Logger::log</a></div><div class="ttdeci">virtual void log(const char *fmt,...)</div><div class="ttdoc">Log with format. </div><div class="ttdef"><b>Definition:</b> Logging.cpp:20</div></div>
<div class="ttc" id="class_logger_html_a1cae1fe08a7e386fd0539f61658d3a1f"><div class="ttname"><a href="class_logger.html#a1cae1fe08a7e386fd0539f61658d3a1f">Logger::m_filter</a></div><div class="ttdeci">log_level_t m_filter</div><div class="ttdoc">The current logging filter level. </div><div class="ttdef"><b>Definition:</b> Logging.h:109</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381ade1be3a5625f4037711f67c7064905d2"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ade1be3a5625f4037711f67c7064905d2">Logger::kInfo1</a></div><div class="ttdoc">Alias for kInfo. </div><div class="ttdef"><b>Definition:</b> Logging.h:59</div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html_a7a6868510087c10610022dabcab27f55"><div class="ttname"><a href="class_log_1_1_set_output_level.html#a7a6868510087c10610022dabcab27f55">Log::SetOutputLevel::SetOutputLevel</a></div><div class="ttdeci">SetOutputLevel(Logger *logger, Logger::log_level_t level)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:213</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381a0e22aade4d30c09d021b81f88e422d59"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a0e22aade4d30c09d021b81f88e422d59">Logger::kInfo2</a></div><div class="ttdoc">For verbose status messages. </div><div class="ttdef"><b>Definition:</b> Logging.h:56</div></div>
<div class="ttc" id="class_logger_html_a696a0e952b85574c4e31c9e554838e3e"><div class="ttname"><a href="class_logger.html#a696a0e952b85574c4e31c9e554838e3e">Logger::_log</a></div><div class="ttdeci">virtual void _log(Logger::log_level_t level, const char *msg)=0</div><div class="ttdoc">The base pure virtual logging function implemented by subclasses. </div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html_add93dff7c0b5c79cf5a167617128402d"><div class="ttname"><a href="class_log_1_1_set_output_level.html#add93dff7c0b5c79cf5a167617128402d">Log::SetOutputLevel::~SetOutputLevel</a></div><div class="ttdeci">~SetOutputLevel()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:224</div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html_a8fda3b2fc0a7e316f750819ed80e5c22"><div class="ttname"><a href="class_log_1_1_set_output_level.html#a8fda3b2fc0a7e316f750819ed80e5c22">Log::SetOutputLevel::m_saved</a></div><div class="ttdeci">Logger::log_level_t m_saved</div><div class="ttdoc">Original logging output level. </div><div class="ttdef"><b>Definition:</b> Logging.h:228</div></div>
<div class="ttc" id="class_logger_html_a4e0a3c00612edfa447671831c8857e94"><div class="ttname"><a href="class_logger.html#a4e0a3c00612edfa447671831c8857e94">Logger::log</a></div><div class="ttdeci">virtual void log(const std::string &amp;msg)</div><div class="ttdoc">Log a string object. </div><div class="ttdef"><b>Definition:</b> Logging.h:94</div></div>
<div class="ttc" id="class_stdout_logger_html"><div class="ttname"><a href="class_stdout_logger.html">StdoutLogger</a></div><div class="ttdoc">Simple logger that writes to stdout and stderr. </div><div class="ttdef"><b>Definition:</b> Logging.h:235</div></div>
<div class="ttc" id="class_logger_html_a880f92a9fb0a790e947578b043d73cb9"><div class="ttname"><a href="class_logger.html#a880f92a9fb0a790e947578b043d73cb9">Logger::log</a></div><div class="ttdeci">virtual void log(log_level_t level, const std::string &amp;msg)</div><div class="ttdoc">Log a string output at a specific output level. </div><div class="ttdef"><b>Definition:</b> Logging.h:100</div></div>
<div class="ttc" id="class_stdout_logger_html_a470f9480714ea14497c563d4086449e4"><div class="ttname"><a href="class_stdout_logger.html#a470f9480714ea14497c563d4086449e4">StdoutLogger::m_stderrLevel</a></div><div class="ttdeci">Logger::log_level_t m_stderrLevel</div><div class="ttdoc">Logs at and below this level get sent to stderr. </div><div class="ttdef"><b>Definition:</b> Logging.h:246</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381a894c8bec70d9093570638d698983d86f"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a894c8bec70d9093570638d698983d86f">Logger::kDebug1</a></div><div class="ttdoc">Alias for kDebug. </div><div class="ttdef"><b>Definition:</b> Logging.h:60</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381a30bcc9bfa9b1cd8f269c6763287209cc"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a30bcc9bfa9b1cd8f269c6763287209cc">Logger::kError</a></div><div class="ttdoc">For fatal error messages. </div><div class="ttdef"><b>Definition:</b> Logging.h:53</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381a8e3ed7030f92b6542e5354e937f2e0ee"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381a8e3ed7030f92b6542e5354e937f2e0ee">Logger::kWarning</a></div><div class="ttdoc">For non-fatal warning messages. </div><div class="ttdef"><b>Definition:</b> Logging.h:54</div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html_af042e88d9111d1499117ec6651e536cf"><div class="ttname"><a href="class_log_1_1_set_output_level.html#af042e88d9111d1499117ec6651e536cf">Log::SetOutputLevel::m_logger</a></div><div class="ttdeci">Logger * m_logger</div><div class="ttdoc">The logger instance we&amp;#39;re controlling. </div><div class="ttdef"><b>Definition:</b> Logging.h:227</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381aca09a23920b7567780c73d5e6ef30568"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381aca09a23920b7567780c73d5e6ef30568">Logger::kUrgent</a></div><div class="ttdoc">The lowest level, for messages that must always be logged. </div><div class="ttdef"><b>Definition:</b> Logging.h:52</div></div>
<div class="ttc" id="class_log_html_ad2ceb2fdb51b4dbc4baef0691bdda182"><div class="ttname"><a href="class_log.html#ad2ceb2fdb51b4dbc4baef0691bdda182">Log::setLogger</a></div><div class="ttdeci">static void setLogger(Logger *logger)</div><div class="ttdoc">Sets the global logger singleton instance. </div><div class="ttdef"><b>Definition:</b> Logging.h:139</div></div>
<div class="ttc" id="class_log_html"><div class="ttname"><a href="class_log.html">Log</a></div><div class="ttdoc">Wraps a set of static functions for easy global logging access. </div><div class="ttdef"><b>Definition:</b> Logging.h:130</div></div>
<div class="ttc" id="class_logger_html_a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec"><div class="ttname"><a href="class_logger.html#a5209ca5ee1a2a8181287485e950cf381ae2dae72bbbe478b4ece96ee72ce613ec">Logger::kInfo</a></div><div class="ttdoc">The normal log level, for status messages. </div><div class="ttdef"><b>Definition:</b> Logging.h:55</div></div>
<div class="ttc" id="class_logger_html_a86a9875a4e4aae6670f16237e651ba3a"><div class="ttname"><a href="class_logger.html#a86a9875a4e4aae6670f16237e651ba3a">Logger::setFilterLevel</a></div><div class="ttdeci">void setFilterLevel(log_level_t level)</div><div class="ttdoc">Changes the logging level to level. </div><div class="ttdef"><b>Definition:</b> Logging.h:76</div></div>
<div class="ttc" id="class_stdout_logger_html_af2204f094477dfbed6af3cf55ac60ccf"><div class="ttname"><a href="class_stdout_logger.html#af2204f094477dfbed6af3cf55ac60ccf">StdoutLogger::StdoutLogger</a></div><div class="ttdeci">StdoutLogger(Logger::log_level_t stderrLevel=Logger::kWarning)</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:239</div></div>
<div class="ttc" id="class_log_1_1_set_output_level_html"><div class="ttname"><a href="class_log_1_1_set_output_level.html">Log::SetOutputLevel</a></div><div class="ttdoc">Utility class to temporarily change the logging output level. </div><div class="ttdef"><b>Definition:</b> Logging.h:193</div></div>
<div class="ttc" id="class_logger_html_abc41bfb031d896170c7675fa96a6b30c"><div class="ttname"><a href="class_logger.html#abc41bfb031d896170c7675fa96a6b30c">Logger::Logger</a></div><div class="ttdeci">Logger()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:65</div></div>
<div class="ttc" id="class_logger_html_a02dcc6a005e650891bbfb8c76e590185"><div class="ttname"><a href="class_logger.html#a02dcc6a005e650891bbfb8c76e590185">Logger::m_level</a></div><div class="ttdeci">log_level_t m_level</div><div class="ttdoc">The current log output level. </div><div class="ttdef"><b>Definition:</b> Logging.h:110</div></div>
<div class="ttc" id="class_logger_html_ae93f62ca3e47716b7120acb032a260f3"><div class="ttname"><a href="class_logger.html#ae93f62ca3e47716b7120acb032a260f3">Logger::~Logger</a></div><div class="ttdeci">virtual ~Logger()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> Logging.h:72</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer">Copyright 2016-2020 NXP Semiconductors. All rights reserved.
    </li>
  </ul>
</div>
</body>
</html>
